0bb6db823d5d8e4963a31edb96c2e195a045abcb,core/src/test/java/com/orientechnologies/orient/core/storage/impl/local/paginated/wal/WriteAheadLogTest.java,WriteAheadLogTest,testLogThreeCheckPointTruncationOneLeft,#,994

Before Change


    when(paginatedStorage.getName()).thenReturn("WriteAheadLogTest");
    when(paginatedStorage.getStoragePath()).thenReturn(testDir.getAbsolutePath());

    writeAheadLog = new OWriteAheadLog(1024, -1, 2048, 2 * 2048, paginatedStorage);

    List<OWALRecord> writtenRecords = new ArrayList<OWALRecord>();
    Random rnd = new Random();

    OWALRecord walRecord = new OFuzzyCheckpointStartRecord();
    writeAheadLog.logRecord(walRecord);
    writtenRecords.add(walRecord);

    walRecord = new OFuzzyCheckpointStartRecord();
    writeAheadLog.logRecord(walRecord);
    writtenRecords.add(walRecord);

    OUpdatePageRecord setPageDataRecord = new OUpdatePageRecord(1, "test");
    final int firstRecordsToWrite = (2048 - 2 * serializeSize(walRecord)) / serializeSize(setPageDataRecord);

    for (int i = 0; i < firstRecordsToWrite; i++) {
      long pageIndex = rnd.nextLong();
      setPageDataRecord = new OUpdatePageRecord(pageIndex, "test");

      writtenRecords.add(setPageDataRecord);
      writeAheadLog.logRecord(setPageDataRecord);
    }

    int recordsToWrite = 2 * (2048 / serializeSize(setPageDataRecord));

    for (int i = 0; i < recordsToWrite - 1; i++) {
      long pageIndex = rnd.nextLong();
      setPageDataRecord = new OUpdatePageRecord(pageIndex, "test");

      writtenRecords.add(setPageDataRecord);
      writeAheadLog.logRecord(setPageDataRecord);
    }

    walRecord = new OFuzzyCheckpointStartRecord();

After Change


    when(paginatedStorage.getName()).thenReturn("WriteAheadLogTest");
    when(paginatedStorage.getStoragePath()).thenReturn(testDir.getAbsolutePath());

    writeAheadLog = new OWriteAheadLog(2, -1, 2 * OWALPage.PAGE_SIZE, 4 * OWALPage.PAGE_SIZE, paginatedStorage);

    List<OWALRecord> writtenRecords = new ArrayList<OWALRecord>();
    Random rnd = new Random();

    OWALRecord walRecord = new OFuzzyCheckpointStartRecord();
    writeAheadLog.logRecord(walRecord);
    writtenRecords.add(walRecord);

    walRecord = new OFuzzyCheckpointStartRecord();
    writeAheadLog.logRecord(walRecord);
    writtenRecords.add(walRecord);

    int firstSegmentIndex = -1;
    int counter = 2;

    long logSize = writeAheadLog.size() + 1;
    long prevLogSize = 0;

    while (logSize > prevLogSize) {
      int contentSize = rnd.nextInt(OWALPage.PAGE_SIZE - 128) + 128;
      walRecord = new TestRecord(contentSize);

      writeAheadLog.logRecord(walRecord);
      writtenRecords.add(walRecord);

      prevLogSize = logSize;
      logSize = writeAheadLog.size();

      if (firstSegmentIndex < 0 && logSize > 2 * OWALPage.PAGE_SIZE)
        firstSegmentIndex = counter;

      counter++;